package bTree.LeetCode;

import java.util.Arrays;

public class 打家劫舍2 {
    public int rob(int[] nums) {
        if(nums.length==0){
            return 0;
        }
        if (nums.length==1){
            return nums[0];
        }
        if(nums.length==2){
            return Math.max(nums[0],nums[1]);
        }
        int n=nums.length;
        return Math.max(dodp(Arrays.copyOfRange(nums,0,n-2),n-1),dodp(Arrays.copyOfRange(nums,1,n-1),n-1));
    }
    int dodp(int []nums,int n){
        int []dp=new int[n];
        dp[0]=nums[0];
        dp[1]=Math.max(nums[0],nums[1]);
        for (int i = 2; i < n; i++) {
            dp[i]=Math.max(dp[i-1],dp[i-2]+nums[i]);
        }
        return nums[n-1];
    }
}